package cn.csc.framework.pay.core.client.impl.lkl.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.gson.annotations.SerializedName;
import com.lkl.laop.sdk.request.model.V3LabsTradeAccBusiFieldInfo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * 聚合主扫 微信支付 的accBusiFields
 * @author liuchuang
 * @version 1.0
 * @date 2023/11/6 16:03
 * @modify
 */
@Getter
@Setter
@ToString
public class V3LabsTradeWechatAccBusiFieldInfo extends V3LabsTradeAccBusiFieldInfo {

    /**
     * timeout_express	预下单有效时间	C	String(2)	预下单的订单的有效时间，以分钟为单位。建议不超过15分钟。不传值则默认5分钟。(微信主扫下单上送的失效时间，是控制prepay_id调起支付的有效时间。微信后台不会根据失效时间发起关单。 如需关单，调用关单接口。)
     * sub_appid	子商户公众账号ID	C	String(32)	微信分配的子商户公众账号ID，sub_appid（即微信小程序支付-71、公众号支付-51），此参数必传，只对微信支付有效 工行数字钱包情况下，该字段上送工行的openId 拉卡拉钱包情况下，该字段上送LAKALA的userId
     * user_id	用户标识	C	String(64)	用户在子商户sub_appid下的唯一标识，sub_openid，（即微信小程序支付-71、众号支付-51），此参数必传，只对微信支付有效
     * detail	商品详情	C	String(1024)	单品优惠功能字段，详见下文说明
     * goods_tag	订单优惠标记	C	String(32)	订单优惠标记，微信平台配置的商品标记，用于优惠券或者满减使用，accountType为WECHAT时，可选填此字段
     * attach	附加域	C	String(128)	该字段主要用于商户携带订单的自定义数据。商户定制字段，直接送到账户端。
     * device_info	设备号	C	String(32)	终端设备号(门店号或收银设备ID)，注意：PC网页或JSAPI支付请传”WEB”
     * limit_pay	指定支付方式	C	String(20)	no_credit–指定不能使用信用卡支付
     * scene_info	场景信息	C	String(256)	该字段用于上报场景信息，目前支持上报实际门店信息。
     * limit_payer	限定支付	C	String(8)	ADULT：成年人
     */

    @SerializedName("timeout_express")
    @JsonProperty("timeout_express")
    private String timeoutExpress;

    @SerializedName("sub_appid")
    @JsonProperty("sub_appid")
    private String subAppid;

    @SerializedName("user_id")
    @JsonProperty("user_id")
    private String userId;

    @SerializedName("detail")
    @JsonProperty("detail")
    private String detail;

    @SerializedName("goods_tag")
    @JsonProperty("goods_tag")
    private String goodsTag;

    @SerializedName("attach")
    @JsonProperty("attach")
    private String attach;

    @SerializedName("device_info")
    @JsonProperty("device_info")
    private String deviceInfo;

    @SerializedName("limit_pay")
    @JsonProperty("limit_pay")
    private String limitPay;

    @SerializedName("scene_info")
    @JsonProperty("scene_info")
    private String sceneInfo;

    @SerializedName("limit_payer")
    @JsonProperty("limit_payer")
    private String limitPayer;

}
